package com.turing.post.cardmanagement.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;

/**
 * 调整单管理
 * 
 * @author YangShuo
 * 
 */

@Remote
@Local
public interface AdjustInOutStockOrderDao {
	/**
	 * 根据AdjustInOutStockOrderId主键查询
	 * 
	 * @param CardParValueId
	 *            卡面值面好
	 * @return AdjustInOutStockOrder对象
	 */
	public AdjustInOutStockOrder getAdjustInOutStockOrderByAdjustInOutStockOrderId(
			BigInteger AdjustInOutStockOrderId);

	/**
	 * 新增调整单
	 * 
	 * @param AdjustInOutStockOrder
	 *            对象
	 * @throws PCPSApplicationException
	 */
	public void insertAdjustInOutStockOrder(
			AdjustInOutStockOrder AdjustInOutStockOrder)
			throws PCPSApplicationException;

	/**
	 * 修改调整单
	 * 
	 * @param AdjustInOutStockOrder
	 *            对象
	 * @throws PCPSApplicationException
	 */
	public void updateAdjustInOutStockOrder(
			AdjustInOutStockOrder AdjustInOutStockOrder)
			throws PCPSApplicationException;

	/**
	 * 删除调整单
	 * 
	 * @param AdjustInOutStockOrder
	 *            对象
	 * @throws PCPSApplicationException
	 */
	public void deleteAdjustInOutStockOrder(BigInteger adjustInOutStockOrderId)
			throws PCPSApplicationException;

	/**
	 * 修改cancelid，取消时调用
	 * 
	 * @param AdjustInOutStockOrderID
	 *            调整单ID
	 * @param CancelAdjustInOutStockOrderID
	 *            取消调整单ID
	 * @throws PCPSApplicationException
	 */
	public int updateAdjustInOutStockOrderCancelID(
			BigInteger AdjustInOutStockOrderID,
			BigInteger CancelAdjustInOutStockOrderID)
			throws PCPSApplicationException;

	/**
	 * 条件查询列表，机构号，时间范围，交易类型，状态，操作员，审批人，页码
	 * 
	 * @param Branchno
	 *            机构号
	 * @param StartTime
	 *            开始时间
	 * @param EndTime
	 *            结束时间
	 * @param TranType
	 *            交易类型
	 * @param Status
	 *            状态
	 * @param OperId
	 *            操作员
	 * @param AuthOperId
	 *            审批人
	 * @param page
	 *            页码
	 * @return AdjustInOutStockOrder 对象列表
	 * @throws PCPSApplicationException
	 */
	public List<AdjustInOutStockOrder> getAdjustInOutStockOrderList(
			Integer flag, String Branchno, String StartTime, String EndTime,
			String TranType, String Status, BigInteger OperId,
			BigInteger AuthOperId, Integer page);

	/**
	 * 条件查询调整单总数，机构号，时间范围，交易类型，状态，操作员，审批人，页码
	 * 
	 * @param Branchno
	 *            机构号
	 * @param StartTime
	 *            开始时间
	 * @param EndTime
	 *            结束时间
	 * @param TranType
	 *            交易类型
	 * @param Status
	 *            状态
	 * @param OperId
	 *            操作员
	 * @param AuthOperId
	 *            审批人
	 * @param page
	 *            页码
	 * @return count 对象条数
	 */
	public Integer getAdjustInOutStockOrderCount(Integer flag, String Branchno,
			String StartTime, String EndTime, String TranType, String Status,
			BigInteger OperId, BigInteger AuthOperId);
}
